﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace Server
{
    public class Vare
    {
        // vare objekt der også sørger for guarded suspension, så det kun er en klient der kan skrive ad gangen
        string varebetegnelse;
        int mindstepris;
        int højesteBud;
        string højestBydende;
        object lås = new object();

        public Vare(string varebetegnelse, int mindstepris)
        {
            this.varebetegnelse = varebetegnelse;
            this.mindstepris = mindstepris;
            højesteBud = 0;
            højestBydende = null;
        }

        public bool NytBud(int bud, string klient)
        {
            // tjekker om buddet er højere end foregående og højere end mindstepris
            lock (lås)
            {
                if (bud > højesteBud && bud > mindstepris)
                {
                    højesteBud = bud;
                    højestBydende = klient;
                    return true;
                }
            }
            return false;
        }

        public string Varebetegnelse
        {
            get { return varebetegnelse; }
        }

        public int Mindstepris
        {
            get { return mindstepris; }
        }

        public int HøjesteBud
        {
            get { return højesteBud; }
        }

        public string HøjestBydende
        {
            get { return højestBydende; }
        }      
    }
}
